package com.ecommerce.health;

import com.ecommerce.service.ProductPageQueryOrdinaryService;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

/**
 * 商品配置控制器
 * 提供动态切换搜索模式和降级策略的API接口
 */
@RestController
@RequestMapping("/api/config")
@RequiredArgsConstructor
public class ProductConfigController {

    /**
     * 商品普通分页查询服务
     * 用于控制ES和MySQL查询的切换
     */
    private final ProductPageQueryOrdinaryService productPageQueryOrdinaryService;

    /**
     * 切换Elasticsearch搜索开关状态
     *
     * @param enabled true启用ES搜索，false禁用ES搜索
     * @return HTTP 200响应
     */
    @PostMapping("/es-toggle")
    public ResponseEntity<Void> toggleEs(@RequestParam boolean enabled) {
        // 设置ES搜索开关状态
        productPageQueryOrdinaryService.setEsEnabled(enabled);
        // 返回成功响应
        return ResponseEntity.ok().build();
    }

    /**
     * 切换降级到MySQL的开关状态
     *
     * @param enabled true启用降级策略，false禁用降级策略
     * @return HTTP 200响应
     */
    @PostMapping("/fallback-toggle")
    public ResponseEntity<Void> toggleFallback(@RequestParam boolean enabled) {
        // 设置降级到MySQL的开关状态
        productPageQueryOrdinaryService.setFallbackToMysql(enabled);
        // 返回成功响应
        return ResponseEntity.ok().build();
    }
}